<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>

<body>

</body>

</html>

<script>
  /*
    「条件分支」：
      作用：根据条件，决定 是否执行语句（代码块）。
  
  
      // 若 表达式为『真」，则执行 A，否则执行 B。
        // -> 表达式，会被「隐式转换」，最终看其 布尔值；
      // 举例：1 > 0 返回值为 true
      // 哪些数据是「假」：0、'' 、null、undefined、NaN、false
      if (表达式) {
        // 代码块A 
        console.log('aaa')
      } else { // else 表示 剩下/否则
        // 代码块B 
        console.log('bbb')
      } 


      // 没有 else
      if (A) {
     
      } else if (B) {
     
      } else if (C) {
     
      }

      if (A) {
     
      } else if (B) {
     
      } else if (C) {
     
      } else {
        
      }


    // switch
  */

  /* switch
    执行逻辑：
      - key 是已存在的 变量。
      - key === value，则 执行 value 其下面的代码；直到遇到 break 为止。
      - 「代码穿透」
        switch (key) {
          case value1:
            console.log(111);
            console.log(222);
            // break;
        
          case value2:
            console.log(333);
            
            break;
          default:
            console.log(444);
            break;
        }


  */


  /* 逻辑运算符
    与
      A && B && C
        执行逻辑：
          1）若所有表达式都为「真」，则整体表达式的返回值是 最后一个表达式的 返回值。
          2）若有一个表达式为「假」，则立即停止后续表达式的执行，该「假」的值，作为 整体表达式的返回值。

        案例：
          console.log(111 && 222 && 333); // 333
          console.log(111 && NaN && 333); // NaN

    或
        A || B || C
          执行逻辑：
            1）若所有表达式都为「假」，则整体表达式的返回值是 最后一个表达式的 返回值。
            2）若有一个表达式为「真」，则立即停止后续表达式的执行，该「真」的值，作为 整体表达式的返回值。

        案例：
          console.log('' || NaN || 0); // 0
          console.log('' || 123123 || 0); // 123123

    非
        !表达式

        执行逻辑：
          1）若表达式为「真」，则整体表达式的返回值为 false。
          2）若表达式为「假」，则整体表达式的返回值为 true。

        案例：
          console.log(!112342234345); // false
          console.log(!'adsfa'); // false
          console.log(!NaN); // true
          console.log(!null); // true
  */


  /* 循环：
    作用：重复地执行 代码块。

    while 循环：
        
    写法：
        var num = 0;  
        while (`表达式对 num 的值进行判断` - 1) {
          // 代码块 - 2

          // 必须有异步 改变 num 的值
        }
  
    执行逻辑：
        首先声明 变量 - num

        1 -> 2 -> 1 -> 2 -> 1 -> 2 ... 直到 1为 「假」，则停止 代码块的执行
  
  */






</script>